home *** CD-ROM | disk | FTP | other *** search
/ CD Classic 39 / CD CLASSIC #39 (1998).iso / EMPRESA / visio / Vistdstd / Install / Data.Z / Ivisauto.H < prev    next >
C/C++ Source or Header  |  1996-07-25  |  3KB  |  110 lines

  1. /* IVISAUTO.H - Interface definition for IAutoSupport.
  2.  *  Copyright (C) 1991-1996 Visio Corporation. All rights reserved.
  3.  */
  4.  
  5. #ifndef _IVISAUTO_H
  6. #define _IVISAUTO_H
  7.  
  8.  
  9. #ifdef OLD_VISIO
  10.  
  11.     #include "ovisprox.h"
  12.  
  13.     #define    PROXVER        0x00020003L
  14.  
  15. #else
  16.  
  17.     /*
  18.         By including this file, the client is basically asking us to compile
  19.         existing source code against the new dual interface. This is fine, but
  20.         we will support this only for a limited time and it is not guaranteed
  21.         to eliminate all naming conflicts. For best results and easiest future
  22.         maintainability, rewrite code to the "visio.h" interfaces.
  23.  
  24.         DO NOT INCLUDE THIS FILE WHEN WRITING NEW CODE! Instead, include
  25.         "visio.h" directly and write against the interfaces desribed in
  26.         that file.
  27.      */
  28.  
  29.     /* This means "define names such that old code still compiles"    */
  30.     #ifndef NO_VISIO_41_COMPATIBILITY_LAYER
  31.     #define VISIO_41_COMPATIBILITY_LAYER
  32.     #endif
  33.  
  34.     #ifdef VISIO_41_COMPATIBILITY_LAYER
  35.         #include "v41objs.h"    /*    Defines names compatible with Visio 4.1 and earlier "ivisprox.h"    */
  36.     #endif
  37.  
  38.     #include "vfwddecl.h"    /*    Forward declarations necessary for non-C++ compiles                    */
  39.  
  40.     #include "visio.h"        /*    New dual interfaces (and names!) for Visio's object model            */
  41.  
  42.     #ifdef VISIO_41_COMPATIBILITY_LAYER
  43.         #include "v41undef.h"    /*    Undefines Shapes, Masters, etc. that got defined in v41objs.h...    */
  44.         #include "v41meth.h"    /*    ...because some of the method names are exactly the same in here.    */
  45.     #endif
  46.  
  47.     #define    PROXVER        0x00040101L
  48.  
  49. #endif
  50.  
  51.  
  52. #include "visconst.h"
  53.  
  54.  
  55. #if !defined( OLESTR )
  56.     #if defined( _WIN32 )
  57.         #define OLESTR(string) L##string
  58.     #else
  59.         #define OLESTR(string) string
  60.     #endif
  61. #endif
  62.  
  63.  
  64. #define    CLSID_VISIOAUTOPROXY    OLESTR("{00021A03-0000-0000-C000-000000000046}")
  65. #define    IID_VISIOAUTOSUPPORT    OLESTR("{00021A89-0000-0000-C000-000000000046}")
  66. #define    IID_VISIOPROXYOBJIF        OLESTR("{00021A92-0000-0000-C000-000000000046}")
  67.  
  68.  
  69. #undef  INTERFACE
  70. #define INTERFACE   IVAutoSupport
  71.  
  72. DECLARE_INTERFACE_(IVAutoSupport, IUnknown)
  73.     {
  74.     // *** IUnknown methods ***
  75.     STDMETHOD(QueryInterface)       (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  76.     STDMETHOD_(ULONG,AddRef)        (THIS) PURE;
  77.     STDMETHOD_(ULONG,Release)       (THIS) PURE;
  78.  
  79.     // *** IVAutoSupport methods ***
  80.     STDMETHOD_(DWORD, GetProxyVersion) (THIS) PURE; 
  81.     STDMETHOD_(BOOL, CanRunProxy)    (THIS_ DWORD ver) PURE; 
  82.     
  83.     STDMETHOD(GetVisioObject)         (THIS_ BOOL fActive, LPVISIOAPPLICATION FAR * ppApp) PURE;
  84.     STDMETHOD(CreateProxy)            (THIS_ LPUNKNOWN ipIUnk, LPCLSID lpclsid, LPVOID FAR * lpipIPrx) PURE;
  85.     STDMETHOD_(LPDISPATCH,GetDispatch)(THIS) PURE;
  86.     };
  87.  
  88. typedef IVAutoSupport FAR* LPVAUTOSUPPORT;
  89.  
  90.  
  91. #undef  INTERFACE
  92. #define INTERFACE   IVAutoProxyObj
  93.  
  94. DECLARE_INTERFACE_(IVAutoProxyObj, IUnknown)
  95.     {
  96.     // *** IUnknown methods ***
  97.     STDMETHOD(QueryInterface)       (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  98.     STDMETHOD_(ULONG,AddRef)        (THIS) PURE;
  99.     STDMETHOD_(ULONG,Release)       (THIS) PURE;
  100.  
  101.     // *** IVProxyObjIf methods ***
  102.     STDMETHOD_(IDispatch FAR*, ipVisDisp)(void);
  103.     STDMETHOD_(BSTR, bstrModuleFileName)(void);
  104.     };
  105.  
  106. typedef IVAutoProxyObj FAR* LPVISPROXYOBJIF;
  107.  
  108.  
  109. #endif /* _IVISAUTO_H */
  110.